/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package UTILITARIOS;

import CONTROLES.Conexion;
import CONTROLES.ControlEmpleado;
import CONTROLES.ControlEmpleo;
import CONTROLES.ControlSucursal;
import CONTROLES.ControlTipoCambio;
import CONTROLES.ControlUsuario;
import MODELOS.Empleado;
import MODELOS.Empleo;
import MODELOS.Sucursal;
import MODELOS.TipoCambio;
import MODELOS.Usuario;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;

import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;




/**
 *
 * @author Marco Antonio
 */
public class Propiedades {
        
    public Propiedades(){}
    
    Properties props = new Properties();
    FileInputStream s;


    public boolean verificarBD()
     {
       
        boolean res = false;
        Conexion con = new Conexion();

        try {
            Connection conex = con.getConexion();
            PreparedStatement psUs = conex.prepareStatement("select * from sucursal;");
            ResultSet result=psUs.executeQuery();
            if(result.next()){
                res=true;
                System.out.println("Existe registro en sucursal ");

            }
            
            else{
                System.out.println("No existe registro en sucursal ");
                res=false;
            }
        } catch (SQLException ex) {
             System.out.println("Error comprobar registros en sucursal: "+ex.getLocalizedMessage());
        }

        return res;
    }

    public void cargarDatos()
    {
        if(verificarBD()==false)
        {
            try {
                cargarArchivo();
            } catch (IOException ex) {
                Logger.getLogger(Propiedades.class.getName()).log(Level.SEVERE, null, ex);
            }
        }else
            System.out.println("La base de datos ya contiene datos");
    }


    public void cargarArchivo() throws IOException{
            File f = new File("\\nfn.txt").getAbsoluteFile();
            System.out.println("ubicacion del archivo"+ f.getAbsolutePath());
            ControlSucursal cs = new ControlSucursal();
            Sucursal suc = new Sucursal();

            ControlEmpleo ce = new ControlEmpleo();
            Empleo empleo = new Empleo();

            ControlEmpleado cemp = new ControlEmpleado();
            Empleado emp = new Empleado();

            ControlUsuario cu = new ControlUsuario();
            Usuario usu = new Usuario();

            ControlTipoCambio tc = new ControlTipoCambio();
            TipoCambio tipo = new TipoCambio();
        try {
            s = new FileInputStream(f);
            props.load(s);

            suc.setNombreSuc(props.getProperty("nombreSucursal"));
            suc.setDireccionSuc(props.getProperty("direccionSuc"));
            suc.setUbicacionSuc(props.getProperty("ubicacionSuc"));
            suc.setTelefonoSuc(Integer.parseInt(props.getProperty("telefonoSuc")));
            suc.setFaxSuc(Integer.parseInt(props.getProperty("faxSuc")));
            suc.setEmailSuc(props.getProperty("emailSuc"));
            suc.setNitSucursal(Long.parseLong(props.getProperty("nitSuc")));
            suc.setDpto(props.getProperty("dptoSuc"));

            cs.guardarSucursal(suc);

            empleo.setNombreEmpleo(props.getProperty("nombreEmpleo"));
            empleo.setDescripcionEmpleo(props.getProperty("descripcion"));
            empleo.setSalario(Double.parseDouble(props.getProperty("salario")));
            empleo.setIdSucursal(Integer.parseInt(props.getProperty("idSucursal")));

            ce.registrarEmpleo(empleo);
            
            StringToDate conv = new StringToDate();
            String fecha = props.getProperty("fechaNac");
            System.out.println("fecha " +fecha);
            Date fechaNac = conv.convertir(fecha);

            emp.setIdSucursal(Integer.parseInt(props.getProperty("idSucursal")));
            emp.setNombreEmpleado(props.getProperty("nombreEmp"));
            emp.setApellidoEmp(props.getProperty("apellidoEmp"));
            emp.setCiudadEmp(props.getProperty("ciudadEmp"));
            emp.setCelularEmp(Integer.parseInt(props.getProperty("celular")));
            emp.setTelefonoEmp(Integer.parseInt(props.getProperty("telefono")));
            emp.setNitEmp(Integer.parseInt(props.getProperty("nit")));
            emp.setGeneroEmp(props.getProperty("genero"));
            emp.setFechaNacimiento(fechaNac);
            emp.setDireccionEmp(props.getProperty("direccion"));
            emp.setEstadoEmp(true);
            emp.setEmailEmp(props.getProperty("email"));
            emp.setIdEmpleo(Integer.parseInt(props.getProperty("idEmpleo")));

            cemp.guardarEmpleado(emp);

            usu.setIdEmpleado(Integer.parseInt(props.getProperty("idEmpleado")));
            usu.setNombreUsuario(props.getProperty("nombreUsu"));
            usu.setContrasena(props.getProperty("contrasena"));
            usu.setTipoUsuario(props.getProperty("tipoUsuario"));
            usu.setFechaCreacion(new Fecha().getFechaDate());
            usu.setEstado(true);
            usu.setPermiso(true);
            usu.setToken(props.getProperty("token"));

            cu.guardarUsuario(usu);

            tipo.setTipoCompra(Double.valueOf(props.getProperty("tipoCompra")));
            tipo.setTipoVenta(Double.valueOf(props.getProperty("tipoVenta")));
            tipo.setTipoOficial(Double.valueOf(props.getProperty("tipoOficial")));

            tc.registrarTipoCambio(tipo);

        } catch (FileNotFoundException ex) {
            Logger.getLogger(Propiedades.class.getName()).log(Level.SEVERE, null, ex);
        }
            
    }

    public static void main(String[] args) {
        Propiedades p = new Propiedades();
        try {
            p.cargarArchivo();
        } catch (IOException ex) {
            Logger.getLogger(Propiedades.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

}
